package com.kitty.record.kittyalgorithm.audition;

/**
 //字符串压缩。利用字符重复出现的次数，编写一种方法，
 实现基本的字符串压缩功能。比如，字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没
 有变短，则返回原先的字符串。你可以假设字符串中只包含大小写英文字母（a至z）。
 //
 // 示例1:
 // 输入："aabcccccaaa"
 // 输出："a2b1c5a3"
 //
 // 示例2:
 // 输入："abbccd"
 // 输出："abbccd"
 // 解释："abbccd"压缩后为"a1b2c2d1"，比原字符串长度更长。
 //
 // 提示：
 // 字符串长度在[0, 50000]范围内。
 *
 * @Author SHEN
 * @Date 2020/11/26
 */
public class LeetCode0106 {


    public static void main(String[] args) {
        String s = "aabcccccaa";
        System.out.println(compressString(s));
    }

    public static String compressString(String S) {
        if(S.length() == 0){
            return S;
        }
        StringBuilder sb = new StringBuilder();
        int n = 0;
        char ch = S.charAt(0);
        for (int i = 0; i < S.length(); i++) {
            if(S.charAt(i) == ch){
                n++;
            }else {
                sb.append(ch);
                sb.append(n);
                ch = S.charAt(i);
                n = 1;
            }
        }
        sb.append(ch);
        sb.append(n);
        return sb.length() < S.length() ? sb.toString():S;
    }
}
